from django.core.cache import cache
from django.http import JsonResponse
from django.views import View

from aijia_zufang.utils.response_code import RET
from apps.address.models import Area

'''
房屋模块城区列表接口文档
请求方式：get
请求路径：api/v1.0/areas/
请求参数：无
响应：JSON
errno   状态码     0   （参考utils.response_code.py）      必传
errmsg  响应内容  'ok'  （参考utils.response_code.py）      必传
data    城区列表信息[{'aid':1,'aname':'城区'},{'aid':1,'aname':'城区'}]  必传
'''
class AreaView(View):
    def get(self,request):
        # 每次执行查询地区的时候先从缓存中获取数据,如果有数据直接返回,没有再从数据库读取数据
        areas_list = cache.get('area_info')
        if not areas_list:
            # 1.获取数据库的数据
            try:
                areas = Area.objects.all()
                # 2.业务逻辑
                # 2.1遍历获取到查询集里面的数据--查询集里面是列表
                areas_list = []
                for area in areas:
                    aid = area.id
                    aname = area.name
                    # 2.2列表追加
                    areas_list.append({
                        'aid': aid,
                        'aname': aname
                    })
                # 创建区域表的缓存
                cache.set('area_info', areas_list, 3600)
            except Exception as e:
                print(e)
                return JsonResponse({"errno": RET.DBERR, "errmsg": "数据库查询失败"})


        # 3.返回
        return JsonResponse({"errno": RET.OK, "errmsg": "获取成功", "data": areas_list})
